package org.example.reference;

import java.nio.ByteBuffer;

/**
 * -verbose:gc JVM会在控制台打印出垃圾回收的详细信息
 */
public class CleanerDemo {

    public static void main(String[] args) {
        // 创建一个直接缓冲区，申请1MB的空间
        ByteBuffer buffer = ByteBuffer.allocateDirect(10*1024*1024);

        System.out.println("DirectByteBuffer created.");

        // 模拟对象不再被使用
        buffer = null;

        // 强制执行一次垃圾回收，触发垃圾回收
        System.out.println("手动触发执行垃圾回收");
        System.gc();

        try {
            // 等待一段时间以确保垃圾回收完成
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.println("After GC.");
    }
}